home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2003 November A / PCWK1103A.iso / Adobe After Effects 6.0 tryout / MM5.Cab / F3694_email_setup.jsx.304FA6F7_2783_11D4_8520_00C04F602FD3 < prev    next >
Text File  |  2003-07-18  |  3KB  |  105 lines

  1. {
  2.     // This base64 encodes str. RFC-2045
  3.     function encodeBase64(str)
  4.     {
  5.         var lut = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  6.  
  7.         var chunk = 0;
  8.  
  9.         var result = "";
  10.  
  11.         for( var i = 0; i < str.length; i += 3) {
  12.             chunk = str.charCodeAt(i) & 0xFF;
  13.             chunk = chunk << 8;
  14.  
  15.             // asking for a char out of range returns ""
  16.             chunk |= str.charCodeAt(i+1) & 0xFF;
  17.             chunk = chunk << 8;
  18.  
  19.             chunk |= str.charCodeAt(i+2) & 0xFF;
  20.  
  21.             // these are the number of gaps until we hit %3
  22.             var partialEnd = 3 - (str.length - i) ;
  23.  
  24.             var num6bits = 4;
  25.             // 
  26.             if (partialEnd == 2) { // one character encoded
  27.                 num6bits = 2;
  28.             } else if (partialEnd == 1) { // two encoded
  29.                 num6bits = 3;
  30.             }
  31.  
  32.             for( var j = 0; j < num6bits; j++){
  33.                 result += lut.charAt((chunk & 0xFC0000) >> 18); // six bits    
  34.                 chunk = chunk << 6; 
  35.             }    
  36.  
  37.             // fill with = chars
  38.             if (partialEnd < 3) {
  39.                 for( var j = 0; j < partialEnd; j++){
  40.                     result += "=";
  41.                 }
  42.             }
  43.         }
  44.  
  45.         return result;
  46.     }
  47.  
  48.  
  49.     // This script sets email settings.
  50.     // It can be run all by itself, but it is also called 
  51.     // within "3-Render and Mail.jsx" if the settings aren't yet set.
  52.     // version history
  53.     // 2 - 6/24/03 -- add support for authorization
  54.  
  55.     function GetStringDefaultNull(key)
  56.     {
  57.         if(app.settings.haveSetting("Email Settings", key)) {
  58.             return app.settings.getSetting("Email Settings", key);
  59.         } else {
  60.             return "";
  61.         }
  62.     }
  63.  
  64.     var serverValue = prompt("Enter smtp server address:", GetStringDefaultNull("Mail Server"));
  65.     var fromValue = prompt("Enter reply-to email address:", GetStringDefaultNull("Reply-to Address")); 
  66.     
  67.     var requiresAuth = confirm("Does your smtp server require you to log in?");
  68.     var authUser = GetStringDefaultNull("Auth User");
  69.     var authPass = GetStringDefaultNull("Auth Pass");
  70.     
  71.     if (requiresAuth) {
  72.         authUser = prompt("Please enter the login id for the server:", authUser);
  73.         
  74.         if (authUser != null) {
  75.             authPass = prompt("Please enter the password for the server:", "");
  76.         }
  77.         if (authUser != null) {
  78.             app.settings.saveSetting("Email Settings", "Auth User", authUser);
  79.         }
  80.         
  81.         if (authPass != null) {
  82.             app.settings.saveSetting("Email Settings", "Auth Pass", encodeBase64(authPass));
  83.         }
  84.     } else {
  85.         app.settings.saveSetting("Email Settings", "Auth User", "");
  86.         app.settings.saveSetting("Email Settings", "Auth Pass", "");
  87.     }
  88.     
  89.     var toValue   = prompt("Enter recipient's email address", GetStringDefaultNull("Render Report Recipient"));
  90.     if (serverValue != null && serverValue != "") {
  91.         app.settings.saveSetting("Email Settings", "Mail Server", serverValue);
  92.     }
  93.     if (fromValue != null && fromValue != "") {
  94.         app.settings.saveSetting("Email Settings", "Reply-to Address", fromValue);
  95.     }
  96.     if (toValue != null && toValue != "") {
  97.         app.settings.saveSetting("Email Settings", "Render Report Recipient", toValue);
  98.     }
  99. }
  100.     
  101.     
  102.     
  103.     
  104.     
  105.